/*F2 �� 2
������ � ������
�������� ������� � ���������, ��������������� ������ ������ �������, ������� ������ � ������ ������� ��� ������ ��������, � � ����� � ��� ��������. �� ��������� ������� ���������� ����� ����� �����. ������ �������� ���������:
void sort_even_odd(int n, int a[])

������ �� �����: 		������� ��������� �� ���� ����� ����� 
������ �� ������: 	��������������� �������� ������ 

������ �1
������ �� �����: 		20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 
������ �� ������: 	20 18 16 14 12 10 8 6 4 2 19 17 15 13 11 9 7 5 3 1 

������ �2
������ �� �����: 		1 0 1 0 1 
������ �� ������: 	0 0 1 1 1 

 
*/




#include <stdio.h>
#include <locale.h>


int isDigit(char c) // ��������� �������� �� ������ ������
{
    return ((c>='0')&&(c<='9'));
}


int InputGet(int arr[], int n)
{
int i=0;
char c;
    while((c=getchar())!='\n')
    {
        if(isDigit(c))
        {
            int number=0;
            do
            {
                number=number*10+c-'0';
                c=getchar();
            }
            while(isDigit(c));
            arr[i++] = number;
            if(c=='\n')
                break;
        }
    }
    return i;
}


void sort_even_odd(int n, int a[])
{
    int temp, flag;
    for (int j=0; j < n; j++)
    {
        flag = 1;
        for ( int i = 0; i < n-1; i++)
        {
            if (!(a[i+1]%2)&(a[i]%2))
            {
                temp = a[i];
                a[i] = a[i+1];
                a[i+1] = temp;
                flag = 0;
            }
        }
        if (flag) return;
    } 
}

void Print(int arr[], int len)
{
    for (int i = 0; i < len; i++)
        printf("%d ",arr[i]);
    printf("\n");
}

int main(void)
{
    setlocale(LC_ALL, "Rus");
    enum {BUFFER_SIZE = 30};
    int buffer[BUFFER_SIZE];
    printf("������� ������ ����� �����\n");
    int size = InputGet(buffer,BUFFER_SIZE);
    // printf("size =%d\n",size);
    sort_even_odd(size,buffer);
    printf("������ ����� ������������ � ������ ������� \n");
    Print(buffer,size);
    return 0;
}